Configurable auto-answer for incoming communication requests

ABSTRACT

Systems and methods are described that enable an incoming communication requesting a real-time (e.g., voice, voice-video, etc.) communication and selectively allowing the called communication device to auto-answer the communication. The selective answering may be rule and/or attribute based and depend, entirely or in part, on presence data of a user associated with the called communication device. Auto-answering may be further configured to auto-answer all or less than all of the communication media types (e.g., only auto-answer an audio-video call with audio). Additionally, or alternatively, rules may be combined, overridden, conditionally implemented, or otherwise combined or structured relative to other rules for auto-answering an incoming communication.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has notobjected to the facsimile reproduction by anyone of the patent documentor the patent disclosure as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever.

FIELD OF THE DISCLOSURE

The invention relates generally to systems and methods for networkedcommunications and particularly to selectively enabling a communicationbetween nodes on a network.

BACKGROUND

Communications between communication devices, serving as nodes on anetwork, continue to evolve. Communication devices, such as user devicesthat enable users to communicate via the network with one or more othercommunication devices in audio, video, text, document exchanges,co-browsing, and other media types provide further enhancements to haveand conduct communications. Despite the advancements in the prior art incommunications, problems and opportunities to advance the state of theart remain.

SUMMARY

It is often desirable to allow a request for a communication to be “autoanswered.” While auto-answer may be desirable for certaincommunications, such as those originating from designated contacts ordevices and/or having other authorizing attributes (e.g., time of day,day of week, recipient user's presence status, media type, etc.), it mayor may not be desirable to universally allow all incoming communicationrequests to be auto-answered.

In one embodiment, a user device is configured to selectively allowcertain incoming communication requests to be auto-answered. In anotherembodiment, all incoming communication requests that are notspecifically identified for auto-answer may be denied auto-answer andprocessed via other means. Incoming communication requests may be forany type of between two or more humans providing input to, and receivingoutput from, at least two communication devices in communication via anetwork or networks for communication in a real-time communicationformat (e.g., audio (voice), audio/video) and may be referred to hereinas a “call” or, if unanswered, an “incoming call.” An incoming call is arequest for the communication and once the incoming call is answered,via auto-answer, manual answer (e.g., off-hook), automatic answer (e.g.,interactive voice response, voicemail, etc.), forwarding, forking, etc.,the call is active and data (e.g., analog signals and/or digital media)is exchanged between the user devices engaged in the call. Accordingly,certain embodiments herein may be utilized with networks comprisingcircuit-switched, packet-switched, or a combination thereof forconnecting and/or routing communications. Examples of networks utilizedherein include, but are not limited to, Plan Old Telephone Systems(POTS), Session Initiation Protocol (SIP), voice over internet protocol(VoIP), cellular, and WiFi, and/or other communication networks operableto enable a communication between user devices. The user devices areprovided as human-machine interface and convert the data exchangedbetween another user device to and from human perceivable form(s), suchas images presented on a display or captured by a camera, sound from aspeaker or received by a microphone, Braille or other assistancedevices, etc.

In one embodiment, a user device and/or communication componentassociated with the user and/or user device, may be configured toselectively enable auto-answering of calls by the user device. The userdevice may be configured to auto-answer for selected contacts and/orother attributes of the incoming call, user, user device, or othercomponent. In a further embodiment, a user may have their presenceinformation known which may be utilized alone or with caller informationor other attribute to further refine when a call should beauto-answered. For example, a user may only allow auto-answer when theirstatus is “available.” In another example, a user's auto-answer may beset to “always” wherein presence status is ignored and calls areeligible to be auto-answered regardless of the user's presence status.

In another embodiment, the modality of the auto-answer may beconfigured. For example, an incoming audio-only call may beauto-answered in audio or not auto-answered. In another example, anincoming audio-video call may be configured to be auto-answered aseither an audio-only call or an audio-video. Accordingly, all or lessthan all communication data types of an incoming call may beauto-answered.

In another embodiment, the called user device may be unable to acceptthe call, such as being already engaged in a different communication. Ifthe called user device is busy, the call may be processed normallywithout regard to the auto-answer functionality, such as to “ring busy,”route to voicemail, forward to a delegate user device, etc.

It should be appreciated that caller, calling device, or otherattributes utilized to determine whether or not a call is to beauto-answered, may be provided with a hierarchy or order of operationssuch that certain attributes may override other attributes or otherwisebe combined to form a structured auto-answering rule. As one example,calls from users A, B, and C may be auto-answered, but only withinbusiness hours. Calls from user B may be auto-answered outside of normalbusiness hours but only if the call is originating from a particularlocation or user device. Calls from user C may be auto answered outsideof business hours but only if the call is audio-video and then the callis auto-answered in audio only.

As an example, a user has been admitted to a hospital and has anassociated user device. The user device may be configured to allow audioor audio-video auto-answering when the call originates from particularcalling user devices or users. Accordingly, authorized friends andfamily may call and, even if the user is sleeping, allow the user to see(if auto-answer in video is authorized) the patent to obtain certaininformation without disturbing their sleep. In another example, allcalls received from a particular location (e.g., security office) may beauto-answered, regardless of any other rule, such as to facilitate anappropriate response to an emergency situation.

These and other needs are addressed by the various embodiments andconfigurations of the present invention. The present invention canprovide a number of advantages depending on the particularconfiguration. These and other advantages will be apparent from thedisclosure of the invention(s) contained herein.

In one embodiment, a system is disclosed, comprising: a microprocessorhaving a memory; a data storage accessible to the processor; a networkinterface to a network to enable a communication comprising the systemand a calling device via the network; and the microprocessor performs:receiving a signal associated with an incoming communication request viathe network; accessing, from the data storage, an auto-answer rule;accessing an auto-answer attribute; and evaluating the auto-answerattribute with the auto-answer rule to produce an auto-answer decisionto auto-answer or not out-answer the communication; and upon theauto-answer decision being evaluated to auto-answer the communication,connecting to the incoming communication to enable a real-timecommunication comprising the system and the calling device.

In other embodiment, a method is disclosed for selectivelyauto-answering an incoming communication request by a microprocessor,comprising: receiving a signal associated with an incoming communicationrequest via a network; accessing, from a data storage, an auto-answerrule; accessing an auto-answer attribute; evaluating the auto-answerattribute with the auto-answer rule to produce an auto-answer decisionto auto-answer or not out-answer the communication; and upon theauto-answer decision being evaluated to auto-answer the communication,connecting to the incoming communication to enable a real-timecommunication comprising a user communication device and a callingdevice originating the incoming communication request.

In another embodiment, a system is disclosed for selectivelyauto-answering an incoming communication request by a microprocessor,comprising: means to receive a signal associated with an incomingcommunication request via a network; means to access, from a datastorage, an auto-answer rule; means to access an auto-answer attribute;means to evaluate the auto-answer attribute with the auto-answer rule toproduce an auto-answer decision to auto-answer or not out-answer thecommunication; and means to connect, upon the means to evaluateauto-answer decision is evaluated to auto-answer the communication, tothe incoming communication to enable a real-time communicationcomprising a user communication device and a calling device originatingthe incoming communication request.

The phrases “at least one,” “one or more,” “or,” and “and/or” areopen-ended expressions that are both conjunctive and disjunctive inoperation. For example, each of the expressions “at least one of A, B,and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “oneor more of A, B, or C,” “A, B, and/or C,” and “A, B, or C” means Aalone, B alone, C alone, A and B together, A and C together, B and Ctogether, or A, B, and C together.

The term “a” or “an” entity refers to one or more of that entity. Assuch, the terms “a” (or “an”), “one or more,” and “at least one” can beused interchangeably herein. It is also to be noted that the terms“comprising,” “including,” and “having” can be used interchangeably.

The term “automatic” and variations thereof, as used herein, refers toany process or operation, which is typically continuous orsemi-continuous, done without material human input when the process oroperation is performed. However, a process or operation can beautomatic, even though performance of the process or operation usesmaterial or immaterial human input, if the input is received beforeperformance of the process or operation. Human input is deemed to bematerial if such input influences how the process or operation will beperformed. Human input that consents to the performance of the processor operation is not deemed to be “material.”

Aspects of the present disclosure may take the form of an embodimentthat is entirely hardware, an embodiment that is entirely software(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module,” or “system.”Any combination of one or more computer-readable medium(s) may beutilized. The computer-readable medium may be a computer-readable signalmedium or a computer-readable storage medium.

A computer-readable storage medium may be, for example, but not limitedto, an electronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, or device, or any suitable combinationof the foregoing. More specific examples (a non-exhaustive list) of thecomputer-readable storage medium would include the following: anelectrical connection having one or more wires, a portable computerdiskette, a hard disk, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), an optical fiber, a portable compact disc read-only memory(CD-ROM), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer-readable storage medium may be any tangible, non-transitorymedium that can contain or store a program for use by or in connectionwith an instruction execution system, apparatus, or device.

A computer-readable signal medium may include a propagated data signalwith computer-readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer-readable signal medium may be any computer-readable medium thatis not a computer-readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device. Program codeembodied on a computer-readable medium may be transmitted using anyappropriate medium, including, but not limited to, wireless, wireline,optical fiber cable, RF, etc., or any suitable combination of theforegoing.

The terms “determine,” “calculate,” “compute,” and variations thereof,as used herein, are used interchangeably and include any type ofmethodology, process, mathematical operation or technique.

The term “means” as used herein shall be given its broadest possibleinterpretation in accordance with 35 U.S.C., Section 112(1) and/orSection 112, Paragraph 6. Accordingly, a claim incorporating the term“means” shall cover all structures, materials, or acts set forth herein,and all of the equivalents thereof. Further, the structures, materialsor acts and the equivalents thereof shall include all those described inthe summary, brief description of the drawings, detailed description,abstract, and claims themselves.

The preceding is a simplified summary of the invention to provide anunderstanding of some aspects of the invention. This summary is neitheran extensive nor exhaustive overview of the invention and its variousembodiments. It is intended neither to identify key or critical elementsof the invention nor to delineate the scope of the invention but topresent selected concepts of the invention in a simplified form as anintroduction to the more detailed description presented below. As willbe appreciated, other embodiments of the invention are possibleutilizing, alone or in combination, one or more of the features setforth above or described in detail below. Also, while the disclosure ispresented in terms of exemplary embodiments, it should be appreciatedthat an individual aspect of the disclosure can be separately claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is described in conjunction with the appendedfigures:

FIG. 1 depicts a first system in accordance with embodiments of thepresent disclosure;

FIG. 2 depicts a first data structure in accordance with embodiments ofthe present disclosure;

FIG. 3 depicts a second data structure in accordance with embodiments ofthe present disclosure;

FIG. 4 depicts a third data structure in accordance with embodiments ofthe present disclosure;

FIG. 5 depicts a fourth data structure in accordance with embodiments ofthe present disclosure;

FIG. 6 depicts a process in accordance with embodiments of the presentdisclosure; and

FIG. 7 depicts a second system in accordance with embodiments of thepresent disclosure.

DETAILED DESCRIPTION

The ensuing description provides embodiments only and is not intended tolimit the scope, applicability, or configuration of the claims. Rather,the ensuing description will provide those skilled in the art with anenabling description for implementing the embodiments. It will beunderstood that various changes may be made in the function andarrangement of elements without departing from the spirit and scope ofthe appended claims.

Any reference in the description comprising an element number, without asubelement identifier when a subelement identifier exists in thefigures, when used in the plural, is intended to reference any two ormore elements with a like element number. When such a reference is madein the singular form, it is intended to reference one of the elementswith the like element number without limitation to a specific one of theelements. Any explicit usage herein to the contrary or providing furtherqualification or identification shall take precedence.

The exemplary systems and methods of this disclosure will also bedescribed in relation to analysis software, modules, and associatedanalysis hardware. However, to avoid unnecessarily obscuring the presentdisclosure, the following description omits well-known structures,components, and devices, which may be omitted from or shown in asimplified form in the figures or otherwise summarized.

For purposes of explanation, numerous details are set forth in order toprovide a thorough understanding of the present disclosure. It should beappreciated, however, that the present disclosure may be practiced in avariety of ways beyond the specific details set forth herein.

FIG. 1 depicts system 100 in accordance with embodiments of the presentdisclosure. In one embodiment, system 100 comprises user communicationdevice 104 receiving a request for a communication originating fromcalling device 120. The request may be a SIP “INVITE” message or similarmessage, appropriate for the communication protocol utilized, to signalthe callee device (user communication device 104) that a caller device(calling device 120) is requesting a communication with user 102 viauser communication device 104.

As previously mentioned, the communication request embodied herein arelimited to real-time point-to-point communications utilizing network 114and will generally support full-duplex communications, whether or notimplemented in a particular communication and, more specifically still,may comprise data encoded for transmission via network 114 comprisingaudio, video, both audio-video, or other real-time communication. Inanother embodiment, messaging communications, such as messages encodedas text (e.g., text messages, text chat, post-and-reply, and email,etc.), which do not require a receiving device to first agree to theestablishment of the particular communication session (e.g., answer acall), are not considered real-time communications.

User communication device 104 is variously embodied and may comprise oneor more human-machine interface components, include, but not limited to,speaker 112, microphone 106, camera 108, and video display 110 to enableuser 102 to, one or more of, see, be seen, hear, be heard utilizing thedata encoded and transmitted via network 114 between user communicationdevice 104 and calling device 120. Calling device 120 may similarlycomprise audio, video, or audio-video input/output device or componentsfor similarly presenting and receiving data for encoding/decoding duringa communication.

In one embodiment, calling device 120 initiates a call request to usercommunication device 104 and, in response to receiving the request,selectively auto-answers the call to establish a communication withcalling device 120. In another device, an incoming call is auto-answeredby communication server 116 and communication server 116 then causesuser communication device 104 to be connected to calling device 120 andthereby establishes the resulting communication between usercommunication device 104 and calling device 120 without any requiredhuman action or input on the part of the callee (e.g., user 102). Datastorage 118 may be embodied as an internal or external storage device orother data repository appliance or component to maintain data and/orrules utilized by a microprocessor in user communication device 104and/or communication server 116 to determine whether or not toauto-answer a particular incoming communication.

Upon receiving a communication request, user communication device 104and/or communication server 116 determines whether or not to auto-answerthe communication by evaluating one or more auto-answer attributesagainst one or more auto-answer rules to make an auto-answer decision,as will be discussed more completely with respect to FIGS. 2-5. If thecallee is unable to accept the call (e.g., presence for user 102 is“unavailable”) or user communication device 104 busy, inoperable,presently configured to decline all calls, or algorithmically determinesnot to auto-answer the call, then a default, non-auto-answer, action maybe executed. The non-auto-answer decision may include at least one ofrouting the call to voicemail, forwarding the call to a designatedendpoint, “ring busy” to calling device 120, or reply to calling device120 with a “busy” message, such as a “486 BUSY” SIP message.

The decision to auto-answer the call may comprise answering less thanall of the requested media types. For example, a call request may be foran audio-video communication. The auto-answer decision may accept one ofthe audio or video communication types and reject the other. Whereseparate channels are utilized for audio and video, this may establishonly those channels selected for auto-answer. In other embodiments, thismay be merely muting or not encoding a signal utilized for thenon-included communication type. For example, camera 108 may becapturing an image received by a microprocessor of user communicationdevice 104, but user communication device 104 may determine toauto-answer the call with audio only. Accordingly, the microprocessormay execute an audio-only CODEC or an audio-video CODEC with blank oralternate image (e.g., static image or message) or otherwise ignore ordiscard the output from camera 108 for encoding into the communication.In response to the request for the communication, user communicationdevice 104 selectively auto-answers the call and thereby initiates thetransfer of the encoded data via network 114, such as in a real-timetransfer protocol (RTP) data transfer between user communication device104 and calling device 120.

With respect to FIGS. 2-5, data structures are described for use by amicroprocessor, such as a microprocessor of user communication device104, communication server 116, or a combination thereof to make, inwhole or in part, an auto-answer decision from auto-answer attributesand/or auto-answer rules provided therein. If a decision is made toauto-answer a communication request, which communication types toauto-answer.

FIG. 2 depicts data structure 200 in accordance with embodiments of thepresent disclosure. In one embodiment, data structure 200 comprisesrecords 206 with data elements for user presence element 202 andauto-answer decision element 204. Data structure 200 may be utilized bya microprocess having access to presence information, such as oneexecuting on at least one of user communication device 104 orcommunication server 116 and having access to presence informationassociated with at least user 102.

In one embodiment, “User 1” (an identifier for one embodiment of a user102) when currently available, as indicated in user presence field 202and incoming calls are authorized for auto-answer as indicated byauto-answer decision element 204, as illustrated by record 206A. Inanother embodiment, “User 2” (an identifier for one embodiment of a user102), when available, as indicated in user presence field 202 andincoming calls are further evaluated against the contacts for the userand authorized, or not authorized, for auto-answer as indicated by theparticular contact entry for the identity of the calling user (e.g.,requesting user 122) and/or requesting device (e.g., calling device120), as illustrated by record 206B. In another embodiment, “User 1” (anidentifier for one embodiment of a user 102) when “in a meeting,” asindicated in user presence field 202 and incoming calls are deniedauto-answer, as illustrated by record 206C. In another embodiment, “User2” (an identifier for one embodiment of a user 102) when “in a meeting,”as indicated in user presence field 202 and incoming calls areauto-answered if the identity of the calling user (e.g., requesting user122) and/or requesting device (e.g., calling device 120) is associatedwith “Project A”, such as may be identified in a Lightweight DirectoryAccess Protocol (LDAP) or other contact entry, as illustrated by record206D.

FIG. 3 depicts data structure 300 in accordance with embodiments of thepresent disclosure. In one embodiment, data structure 300 comprises, iscomprised by, or co-implemented with a directory of contacts, such as anLDAP. Upon receiving a request for a communication from an entry ofcaller field 302 the microprocessor evaluates the auto-answer decisionin field 304. This may be determinative (e.g., auto-answer authorized ornot authorized), conditional, such as by executing an identified rule,or subject to further evaluation, as illustrated in ones of records 306.

FIG. 4 depicts data structure 400 in accordance with embodiments of thepresent disclosure. In one embodiment, data structure 400 comprisesrecords 408 having an auto-answer type element field 402, auto-answerattribute 404, and auto-answer decision 406. In one embodiment, amicroprocessor may evaluate auto-type element 402 as a category. Forexample, “originating” when used with entries in the auto-answerattribute 404 may be combined, such as “when ‘Originating’ has a domainof ‘mycompany.com’ then the decision to auto-auto answer will beprovided by evaluating ‘Rule 1’”, such as illustrated by record 408A.

FIG. 5 depicts data structure 500 in accordance with embodiments of thepresent disclosure. In one embodiment, data structure 500 comprisesrecords 506 having rule identifier field 502 and rule field 504. Amicroprocessor, when evaluating a particular auto-answer rule, may findthe result ‘nested,’ by incorporating another rule.

The embodiments illustrated in FIGS. 2-5 may be combined, ordered,extended, truncated, or otherwise altered to provide other embodimentsand results in a rule or algorithm that satisfy a particular auto-answerobjective. It should be appreciated that additional fields and recordsmay be provided as illustrated by the ellipses.

FIG. 6 depicts process 600 in accordance with embodiments of the presentdisclosure. In one embodiment, process 600 may be converted intomachine-readable and executable instructions and maintained in anon-transitory storage device, such as data storage 118, for executionby a microprocessor, such as a microprocessor of user communicationdevice 104 and/or communication server 116. Process 600 begins and step602 receives a signal indicating an incoming communication request. Step602 may be received directly by a callee device, such as usercommunication device 104 or by an associated communication managingdevice, such as communication server 116. Step 602 may comprise aparticular voltage, in an analog based system or encoded message, suchas a SIP “INVITE” message.

Next, test 604 determines if the callee device is available, which maycomprise determining if the callee device (e.g., user communicationdevice 104) is in-use, operational, or in another state that would allowthe incoming call to be auto-answered. If test 604 is determined in thenegative, step 618 performs a default operation, such as to reply with“BUSY”, ring busy, forward the call, route the call to voicemail, etc.If test 604 is determined in the affirmative, step 606 is executed andat least one auto-answer attribute and at least one auto-answer rule isselected. The particular attribute selected may be determined by aparticular rule, such as those described with respect to FIGS. 2-5. Forexample, if a rule is to auto-answer the call if the originator is aparticular use, then the auto-answer attribute may comprise anidentifier of the caller (e.g., requesting user 122) and/or callingdevice (e.g., calling device 120) associated with the particular user.As can be appreciated by those of ordinary skill in the art, attributesmay be utilized to select a particular rule and rules may determine theselection of a particular attribute. For example, while callsoriginating from a particular user may be auto-answered during businesshours, the current time may be accessed as one auto-answer attribute inorder to determine whether or not it is current within business hours.

Step 608 then evaluates the auto-answer attribute with the associatedauto-answer rule and test 610 determines if there are morerules/attributes for evaluation, such as a ‘nested’ or structuredhierarch of rules. If test 610 is determined in the affirmative, test614 accesses the next rule and/or attribute for evaluation in step 608.When all rules/attributes have been evaluated, such as a finalconclusion as to whether or not the call should be auto-answered, test610 is determined in the negative and processing continues to test 612.If test 612 concludes that all connection types are to be declined forauto-answer, processing may continue to step 618 and process 600 mayend. If test 612 is determined in the negative, then step 616 answersthe call with the communication types identified.

FIG. 7 depicts device 702 in system 700 in accordance with embodimentsof the present disclosure. In one embodiment, user communication device104 may be embodied, in whole or in part, as device 702 comprisingvarious components and connections to other components and/or systems.The components are variously embodied and may comprise processor 704.Processor 704 may be embodied as a single electronic microprocessor ormultiprocessor device (e.g., multicore) having therein components suchas control unit(s), input/output unit(s), arithmetic logic unit(s),register(s), primary memory, and/or other components that accessinformation (e.g., data, instructions, etc.), such as received via bus714, executes instructions, and outputs data, again such as via bus 714.

In addition to the components of processor 704, device 702 may utilizememory 706 and/or data storage 708 for the storage of accessible data,such as instructions, values, etc. Communication interface 710facilitates communication with components, such as processor 704 via bus714 with components not accessible via bus 714. Communication interface710 may be embodied as a network port, card, cable, or other configuredhardware device. Additionally or alternatively, input/output interface712 connects to one or more interface components to receive and/orpresent information (e.g., instructions, data, values, etc.) to and/orfrom a human and/or electronic device. Examples of input/output devices730 that may be connected to input/output interface include, but are notlimited to, keyboard, mouse, trackball, printers, displays, sensor,switch, relay, etc. In another embodiment, communication interface 710may comprise, or be comprised by, input/output interface 712.Communication interface 710 may be configured to communicate directlywith a networked component or utilize one or more networks, such asnetwork 720 and/or network 724.

Network 114 may be embodied, in whole or in part, as network 720.Network 720 may be a wired network (e.g., Ethernet, digital publicnetwork (Internet), digital private network), wireless (e.g., WiFi,Bluetooth, cellular, etc.) network, or combination thereof and enabledevice 702 to communicate with network component(s) 722, which may beembodied as, or within, calling device 120.

Additionally or alternatively, one or more other networks may beutilized. For example, network 724 may represent a second network, whichmay facilitate communication with components utilized by device 702. Forexample, network 724 may be an internal network to an enterprise wherebycomponents are trusted (or at least more so) that networked components722, which may be connected to network 720 comprising a public network(e.g., Internet) that may not be as trusted. Components attached tonetwork 724 may include memory 726, data storage 728, input/outputdevice(s) 730, and/or other components that may be accessible toprocessor 704. For example, memory 726 and/or data storage 728 maysupplement or supplant memory 706 and/or data storage 708 entirely orfor a particular task or purpose. For example, memory 726 and/or datastorage 728 may be an external data repository (e.g., server farm,array, “cloud,” etc.) and allow device 702, and/or other devices, toaccess data thereon. Similarly, input/output device(s) 730 may beaccessed by processor 704 via input/output interface 712 and/or viacommunication interface 710 either directly, via network 724, vianetwork 720 alone (not shown), or via networks 724 and 720.

It should be appreciated that computer readable data may be sent,received, stored, processed, and presented by a variety of components.It should also be appreciated that components illustrated may controlother components, whether illustrated herein or otherwise. For example,one input/output device 730 may be a router, switch, port, or othercommunication component such that a particular output of processor 704enables (or disables) input/output device 730, which may be associatedwith network 720 and/or network 724, to allow (or disallow)communications between two or more nodes on network 720 and/or network724.

In the foregoing description, for the purposes of illustration, methodswere described in a particular order. It should be appreciated that inalternate embodiments, the methods may be performed in a different orderthan that described without departing from the scope of the embodiments.It should also be appreciated that the methods described above may beperformed as algorithms executed by hardware components (e.g.,circuitry) purpose-built to carry out one or more algorithms or portionsthereof described herein. In another embodiment, the hardware componentmay comprise a general-purpose microprocessor (e.g., CPU, GPU) that isfirst converted to a special-purpose microprocessor. The special-purposemicroprocessor then having had loaded therein encoded signals causingthe, now special-purpose, microprocessor to maintain machine-readableinstructions to enable the microprocessor to read and execute themachine-readable set of instructions derived from the algorithms and/orother instructions described herein. The machine-readable instructionsutilized to execute the algorithm(s), or portions thereof, are notunlimited but utilize a finite set of instructions known to themicroprocessor. The machine-readable instructions may be encoded in themicroprocessor as signals or values in signal-producing components andincluded, in one or more embodiments, voltages in memory circuits,configuration of switching circuits, and/or by selective use ofparticular logic gate circuits. Additionally or alternative, themachine-readable instructions may be accessible to the microprocessorand encoded in a media or device as magnetic fields, voltage values,charge values, reflective/non-reflective portions, and/or physicalindicia.

In another embodiment, the microprocessor further comprises one or moreof a single microprocessor, a multi-core processor, a plurality ofmicroprocessors, a distributed processing system (e.g., array(s),blade(s), server farm(s), “cloud”, multi-purpose processor array(s),cluster(s), etc.) and/or may be co-located with a microprocessorperforming other processing operations. Any one or more microprocessormay be integrated into a single processing appliance (e.g., computer,server, blade, etc.) or located entirely or in part in a discretecomponent connected via a communications link (e.g., bus, network,backplane, etc. or a plurality thereof).

Examples of general-purpose microprocessors may comprise, a centralprocessing unit (CPU) with data values encoded in an instructionregister (or other circuitry maintaining instructions) or data valuescomprising memory locations, which in turn comprise values utilized asinstructions. The memory locations may further comprise a memorylocation that is external to the CPU. Such CPU-external components maybe embodied as one or more of a field-programmable gate array (FPGA),read-only memory (ROM), programmable read-only memory (PROM), erasableprogrammable read-only memory (EPROM), random access memory (RAM),bus-accessible storage, network-accessible storage, etc.

These machine-executable instructions may be stored on one or moremachine-readable mediums, such as CD-ROMs or other type of opticaldisks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic oroptical cards, flash memory, or other types of machine-readable mediumssuitable for storing electronic instructions. Alternatively, the methodsmay be performed by a combination of hardware and software.

In another embodiment, a microprocessor may be a system or collection ofprocessing hardware components, such as a microprocessor on a clientdevice and a microprocessor on a server, a collection of devices withtheir respective microprocessor, or a shared or remote processingservice (e.g., “cloud” based microprocessor). A system ofmicroprocessors may comprise task-specific allocation of processingtasks and/or shared or distributed processing tasks. In yet anotherembodiment, a microprocessor may execute software to provide theservices to emulate a different microprocessor or microprocessors. As aresult, first microprocessor, comprised of a first set of hardwarecomponents, may virtually provide the services of a secondmicroprocessor whereby the hardware associated with the firstmicroprocessor may operate using an instruction set associated with thesecond microprocessor.

While machine-executable instructions may be stored and executed locallyto a particular machine (e.g., personal computer, mobile computingdevice, laptop, etc.), it should be appreciated that the storage of dataand/or instructions and/or the execution of at least a portion of theinstructions may be provided via connectivity to a remote data storageand/or processing device or collection of devices, commonly known as“the cloud,” but may include a public, private, dedicated, shared and/orother service bureau, computing service, and/or “server farm.”

Examples of the microprocessors as described herein may include, but arenot limited to, at least one of Qualcomm® Snapdragon® 800 and 801,Qualcomm® Snapdragon® 610 and 615 with 4G LTE Integration and 64-bitcomputing, Apple® A7 microprocessor with 64-bit architecture, Apple® M7motion comicroprocessors, Samsung® Exynos® series, the Intel® Core™family of microprocessors, the Intel® Xeon® family of microprocessors,the Intel® Atom™ family of microprocessors, the Intel Itanium® family ofmicroprocessors, Intel® Core® i5-4670K and i7-4770K 22 nm Haswell,Intel® Core® i5-3570K 22 nm Ivy Bridge, the AMD® FX™ family ofmicroprocessors, AMD® FX-4300, FX-6300, and FX-8350 32 nm Vishera, AMD®Kaveri microprocessors, Texas Instruments® Jacinto C6000™ automotiveinfotainment microprocessors, Texas Instruments® OMAP™ automotive-grademobile microprocessors, ARM® Cortex™-M microprocessors, ARM® Cortex-Aand ARM926EJ-S™ microprocessors, other industry-equivalentmicroprocessors, and may perform computational functions using any knownor future-developed standard, instruction set, libraries, and/orarchitecture.

Any of the steps, functions, and operations discussed herein can beperformed continuously and automatically.

The exemplary systems and methods of this invention have been describedin relation to communications systems and components and methods formonitoring, enhancing, and embellishing communications and messages.However, to avoid unnecessarily obscuring the present invention, thepreceding description omits a number of known structures and devices.This omission is not to be construed as a limitation of the scope of theclaimed invention. Specific details are set forth to provide anunderstanding of the present invention. It should, however, beappreciated that the present invention may be practiced in a variety ofways beyond the specific detail set forth herein.

Furthermore, while the exemplary embodiments illustrated herein show thevarious components of the system collocated, certain components of thesystem can be located remotely, at distant portions of a distributednetwork, such as a LAN and/or the Internet, or within a dedicatedsystem. Thus, it should be appreciated, that the components or portionsthereof (e.g., microprocessors, memory/storage, interfaces, etc.) of thesystem can be combined into one or more devices, such as a server,servers, computer, computing device, terminal, “cloud” or otherdistributed processing, or collocated on a particular node of adistributed network, such as an analog and/or digital telecommunicationsnetwork, a packet-switched network, or a circuit-switched network. Inanother embodiment, the components may be physical or logicallydistributed across a plurality of components (e.g., a microprocessor maycomprise a first microprocessor on one component and a secondmicroprocessor on another component, each performing a portion of ashared task and/or an allocated task). It will be appreciated from thepreceding description, and for reasons of computational efficiency, thatthe components of the system can be arranged at any location within adistributed network of components without affecting the operation of thesystem. For example, the various components can be located in a switchsuch as a PBX and media server, gateway, in one or more communicationsdevices, at one or more users' premises, or some combination thereof.Similarly, one or more functional portions of the system could bedistributed between a telecommunications device(s) and an associatedcomputing device.

Furthermore, it should be appreciated that the various links connectingthe elements can be wired or wireless links, or any combination thereof,or any other known or later developed element(s) that is capable ofsupplying and/or communicating data to and from the connected elements.These wired or wireless links can also be secure links and may becapable of communicating encrypted information. Transmission media usedas links, for example, can be any suitable carrier for electricalsignals, including coaxial cables, copper wire, and fiber optics, andmay take the form of acoustic or light waves, such as those generatedduring radio-wave and infra-red data communications.

Also, while the flowcharts have been discussed and illustrated inrelation to a particular sequence of events, it should be appreciatedthat changes, additions, and omissions to this sequence can occurwithout materially affecting the operation of the invention.

A number of variations and modifications of the invention can be used.It would be possible to provide for some features of the inventionwithout providing others.

In yet another embodiment, the systems and methods of this invention canbe implemented in conjunction with a special purpose computer, aprogrammed microprocessor or microcontroller and peripheral integratedcircuit element(s), an ASIC or other integrated circuit, a digitalsignal microprocessor, a hard-wired electronic or logic circuit such asdiscrete element circuit, a programmable logic device or gate array suchas PLD, PLA, FPGA, PAL, special purpose computer, any comparable means,or the like. In general, any device(s) or means capable of implementingthe methodology illustrated herein can be used to implement the variousaspects of this invention. Exemplary hardware that can be used for thepresent invention includes computers, handheld devices, telephones(e.g., cellular, Internet enabled, digital, analog, hybrids, andothers), and other hardware known in the art. Some of these devicesinclude microprocessors (e.g., a single or multiple microprocessors),memory, nonvolatile storage, input devices, and output devices.Furthermore, alternative software implementations including, but notlimited to, distributed processing or component/object distributedprocessing, parallel processing, or virtual machine processing can alsobe constructed to implement the methods described herein.

In yet another embodiment, the disclosed methods may be readilyimplemented in conjunction with software using object or object-orientedsoftware development environments that provide portable source code thatcan be used on a variety of computer or workstation platforms.Alternatively, the disclosed system may be implemented partially orfully in hardware using standard logic circuits or VLSI design. Whethersoftware or hardware is used to implement the systems in accordance withthis invention is dependent on the speed and/or efficiency requirementsof the system, the particular function, and the particular software orhardware systems or microprocessor or microcomputer systems beingutilized.

In yet another embodiment, the disclosed methods may be partiallyimplemented in software that can be stored on a storage medium, executedon programmed general-purpose computer with the cooperation of acontroller and memory, a special purpose computer, a microprocessor, orthe like. In these instances, the systems and methods of this inventioncan be implemented as a program embedded on a personal computer such asan applet, JAVA® or CGI script, as a resource residing on a server orcomputer workstation, as a routine embedded in a dedicated measurementsystem, system component, or the like. The system can also beimplemented by physically incorporating the system and/or method into asoftware and/or hardware system.

Embodiments herein comprising software are executed, or stored forsubsequent execution, by one or more microprocessors and are executed asexecutable code. The executable code being selected to executeinstructions that comprise the particular embodiment. The instructionsexecuted being a constrained set of instructions selected from thediscrete set of native instructions understood by the microprocessorand, prior to execution, committed to microprocessor-accessible memory.In another embodiment, human-readable “source code” software, prior toexecution by the one or more microprocessors, is first converted tosystem software to comprise a platform (e.g., computer, microprocessor,database, etc.) specific set of instructions selected from theplatform's native instruction set.

Although the present invention describes components and functionsimplemented in the embodiments with reference to particular standardsand protocols, the invention is not limited to such standards andprotocols. Other similar standards and protocols not mentioned hereinare in existence and are considered to be included in the presentinvention. Moreover, the standards and protocols mentioned herein andother similar standards and protocols not mentioned herein areperiodically superseded by faster or more effective equivalents havingessentially the same functions. Such replacement standards and protocolshaving the same functions are considered equivalents included in thepresent invention.

The present invention, in various embodiments, configurations, andaspects, includes components, methods, processes, systems and/orapparatus substantially as depicted and described herein, includingvarious embodiments, subcombinations, and subsets thereof. Those ofskill in the art will understand how to make and use the presentinvention after understanding the present disclosure. The presentinvention, in various embodiments, configurations, and aspects, includesproviding devices and processes in the absence of items not depictedand/or described herein or in various embodiments, configurations, oraspects hereof, including in the absence of such items as may have beenused in previous devices or processes, e.g., for improving performance,achieving ease, and\or reducing cost of implementation.

The foregoing discussion of the invention has been presented forpurposes of illustration and description. The foregoing is not intendedto limit the invention to the form or forms disclosed herein. In theforegoing Detailed Description for example, various features of theinvention are grouped together in one or more embodiments,configurations, or aspects for the purpose of streamlining thedisclosure. The features of the embodiments, configurations, or aspectsof the invention may be combined in alternate embodiments,configurations, or aspects other than those discussed above. This methodof disclosure is not to be interpreted as reflecting an intention thatthe claimed invention requires more features than are expressly recitedin each claim. Rather, as the following claims reflect, inventiveaspects lie in less than all features of a single foregoing disclosedembodiment, configuration, or aspect. Thus, the following claims arehereby incorporated into this Detailed Description, with each claimstanding on its own as a separate preferred embodiment of the invention.

Moreover, though the description of the invention has includeddescription of one or more embodiments, configurations, or aspects andcertain variations and modifications, other variations, combinations,and modifications are within the scope of the invention, e.g., as may bewithin the skill and knowledge of those in the art, after understandingthe present disclosure. It is intended to obtain rights, which includealternative embodiments, configurations, or aspects to the extentpermitted, including alternate, interchangeable and/or equivalentstructures, functions, ranges, or steps to those claimed, whether or notsuch alternate, interchangeable and/or equivalent structures, functions,ranges, or steps are disclosed herein, and without intending to publiclydedicate any patentable subject matter.

What is claimed is:
 1. A system, comprising: a microprocessor having amemory; a data storage accessible to the processor; a network interfaceto a network to enable a communication comprising the system and acalling device via the network; and the microprocessor performs:receiving a signal associated with an incoming communication request viathe network; accessing, from the data storage, an auto-answer rule;accessing an auto-answer attribute; and evaluating the auto-answerattribute with the auto-answer rule to produce an auto-answer decisionto auto-answer or not out-answer the communication; and upon theauto-answer decision being evaluated to auto-answer the communication,connecting to the incoming communication to enable a real-timecommunication comprising the system and the calling device.
 2. Thesystem of claim 1, wherein the auto-answer decision is to notauto-answer the communication, performing a non-auto-answer actioncomprising at least one of routing the incoming communication request toanother communication device, routing the incoming communication requestto voicemail, responding to the request with a busy signal.
 3. Thesystem of claim 1, wherein the system is embodied as a usercommunication device.
 4. The system of claim 3, further comprising: atleast one of: a speaker; a microphone; a video display; or a camera; andwherein auto-connecting the communication enables an associated at leastone of: the speaker to convert at least a portion of the data encodedwithin the auto-answered communication into sound waves; the microphoneto convert sound waves into at least a portion of the data encoded intothe auto-answered communication; the video display to convert at least aportion of the data encoded within the auto-answered communication intovisual images; or the camera to convert visual images into at least aportion of the data encoded into the auto-answered communication.
 5. Thesystem of claim 1, wherein the microprocessor comprises a plurality ofintercommunicating microprocessors.
 6. The system of claim 1, furthercomprising: a user communication device; and upon making thedetermination, by the microprocessor, to auto-answer the communication,connecting to the incoming communication to enable a real-timecommunication between the calling device and the user communicationdevice, wherein the user communication device receives and presents atleast a portion of the data encoded within the auto-answeredcommunication to and from at least one form of human perceivablecommunication.
 7. The system of claim 1, wherein the data storage is aportion of a data storage device.
 8. The system of claim 1, wherein theincoming communication request comprises a plurality of communicationtypes and wherein the microprocessor performs connecting to the incomingcommunication to enable a real-time communication with the callingdevice, comprising connecting less than all of the plurality ofcommunication types.
 9. The system of claim 1, wherein the auto-answerrule is evaluated with the auto-answer attribute comprising determiningwhether the auto-answer attribute identifies at least one of the callingdevice or a user associated with the incoming communication request withan entry in a contact record, maintained in the data storage, thatcomprises the auto-answer attribute.
 10. The system of claim 1, whereinthe auto-answer rule is evaluated with the auto-answer attributecomprising at least one of an attribute of an identity of the callingdevice, an attribute of an identity of a calling user associated withthe calling device, or an attribute of the incoming communicationrequest, further comprise at least one of time of day, day of week, dayof month, day of year.
 11. A method for selectively auto-answering anincoming communication request by a microprocessor, comprising:receiving a signal associated with an incoming communication request viaa network; accessing, from a data storage, an auto-answer rule;accessing an auto-answer attribute; evaluating the auto-answer attributewith the auto-answer rule to produce an auto-answer decision toauto-answer or not out-answer the communication; and upon theauto-answer decision being evaluated to auto-answer the communication,connecting to the incoming communication to enable a real-timecommunication comprising a user communication device and a callingdevice originating the incoming communication request.
 12. The method ofclaim 11, wherein the auto-answer decision is to not auto-answer thecommunication, performing a non-auto-answer action comprising at leastone of routing the incoming communication request to anothercommunication device, routing the incoming communication request tovoicemail, responding to the request with a busy signal.
 13. The methodof claim 11, wherein the auto-answer decision is to auto-answer thecommunication, performing at least one of: converting at least a portionof the data encoded within the auto-answered communication into soundwaves by a speaker; converting sound waves into at least a portion ofthe data encoded into the auto-answered communication by a microphone;converting at least a portion of the data encoded within theauto-answered communication into visual images for presentation on avideo display; or converting visual images into at least a portion ofthe data encoded into the auto-answered communication by a camera. 14.The method of claim 11, wherein the incoming communication requestcomprises a plurality of communication types and the auto-answeringfurther comprises, enabling less than all of the plurality ofcommunication types to the user communication device.
 15. The method ofclaim 11, wherein evaluating the auto-answer attribute with theauto-answer rule further comprises determining whether the auto-answerattribute identifies at least one of the calling device or a userassociated with the incoming communication request with an entry in acontact record, maintained in a data storage, that comprises theauto-answer attribute.
 16. The method of claim 15, wherein evaluatingthe auto-answer attribute comprises a group auto-answer attribute andfurther determining whether at least one of the attribute of theidentity of the calling device or the attribute of the identity of acalling user associated with the calling device is a member of a grouphaving the group auto-answer attribute.
 17. The method of claim 11,wherein evaluating the auto-answer attribute with the auto-answer rulefurther comprising utilizing at least one of an attribute of an identityof the calling device, an attribute of an identity of a calling userassociated with the calling device, or an attribute of the incomingcommunication request, further comprise at least one of time of day, dayof week, day of month, day of year for evaluation with the auto-answerrule.
 18. A system for selectively auto-answering an incomingcommunication request by a microprocessor, comprising: means to receivea signal associated with an incoming communication request via anetwork; means to access, from a data storage, an auto-answer rule;means to access an auto-answer attribute; means to evaluate theauto-answer attribute with the auto-answer rule to produce anauto-answer decision to auto-answer or not out-answer the communication;and means to connect, upon the means to evaluate auto-answer decision isevaluated to auto-answer the communication, to the incomingcommunication to enable a real-time communication comprising a usercommunication device and a calling device originating the incomingcommunication request.
 19. The system of claim 18, wherein the incomingcommunication request comprises a plurality of communication types andthe auto-answering further comprises, means to enable less than all ofthe plurality of communication types to the user communication device.20. The system of claim 18, wherein the means to evaluate theauto-answer attribute with the auto-answer rule further comprises meansto determine whether the auto-answer attribute identifies at least oneof the calling device or a user associated with the incomingcommunication request with an entry in a contact record, maintained in adata storage, that comprises the auto-answer attribute.